home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / epistat.arc / MHCHISQR.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-08-18  |  1.6 KB  |  40 lines

  1. 1  REM                MANTEL-HAENSZEL CHI-SQUARE TEST
  2. 2  REM             Written by Tracy L. Gustafson, M.D.
  3. 3  REM            Round Rock, Texas. Version 2.0, 1983
  4. 4  DEF SEG=&H40
  5. 5  A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
  6. 6  DEF SEG: KEY OFF
  7. 7  CLEAR: DEFINT A,N,T,Z: SCREEN 0,0: WIDTH 80: COLOR 7,0,4
  8. 10  CLS: PRINT TAB(22);"KEY";STRING$(33,205);"CLOSE"
  9. 12  PRINT TAB(22);"OPEN MANTEL-HAENSZEL CHI-SQUARE TEST OPEN"
  10. 15  PRINT TAB(22);"SCREEN";STRING$(33,205);"LOAD": PRINT
  11. 20  PRINT TAB(17);: INPUT "Enter NAME of factor you wish to TEST:   ",FT$
  12. 30  PRINT TAB(5);:INPUT "Enter NAME of the related factor you wish to CONTROL FOR:   ",FC$
  13. 40  PRINT: PRINT "  ";FT$;" must be a dichotomous variable, but ";FC$;" may have > 2 levels."
  14. 60  PRINT TAB(15);"How many levels does ";FC$;: INPUT " have?   ",CL: PRINT
  15. 70  PRINT: PRINT TAB(32);"CASES";TAB(55);"CONTROLS": PRINT" ";FC$;" LEVEL";
  16. 80  PRINT TAB(25);"+";FT$;TAB(36);"-";FT$;TAB(50);"+";FT$;TAB(61);"-";FT$
  17. 90  PRINT STRING$(15,"-");TAB(23);STRING$(46,"-")
  18. 95  N=0: SA=0: SB=0: SN=0
  19. 100  FOR Z=1 TO CL: PRINT TAB(5);: INPUT;"",A$: PRINT TAB(27);
  20. 110  INPUT;"",AA: PRINT TAB(38);: INPUT;"",AB: PRINT TAB(52);
  21. 120  INPUT;"",AC: PRINT TAB(63);: INPUT "",AD
  22. 130  N=AA+AB+AC+AD: SA=SA+AA*AD/N: SB=SB+AB*AC/N
  23. 140  SN=SN+(AA+AB)*(AA+AC)*(AC+AD)*(AB+AD)/(N*N*(N-1))
  24. 150  NEXT Z: PRINT
  25. 160  X=ABS(SA-SB)-0.5: X=X*X/SN: DF=CL-1
  26. 170  PRINT TAB(3);: COLOR 0,7: PRINT TAB(13);"CHI-SQUARE = ";X;
  27. 180  IF X>31 AND DF<3 THEN P=0: GOTO 295
  28. 220  J=DF/2-1: R=1
  29. 240  FOR B=1 TO (DF/2-0.5): R=R*J: J=J-1: NEXT
  30. 245  IF DF MOD 2<>0 THEN R=R*1.77245
  31. 250  S=1: I=1: D=DF+2: K=((X/2)^(DF/2))*2/(EXP(X/2)*R*DF)
  32. 270  I=I*X/D: S=S+I: D=D+2: IF I>0 THEN 270
  33. 290  P=1-K*S
  34. 295  PLAY "O2 MB MS T120 L16 D-P8A-P8 L3 D-"
  35. 300  PRINT TAB(50);"p = ";:IF P<9E-09 THEN PRINT "< 10 (-8)"; ELSE PRINT P;
  36. 320  PRINT TAB(78): COLOR 7,0: PRINT: PRINT: PRINT: PRINT TAB(9);
  37. 330  INPUT "Do you want to calculate another Chi-square? (Y or N)  ",A$
  38. 340  IF A$="y" OR A$="Y" THEN CLS: GOTO 10
  39. 350  END
  40.